How to Make Lisp Go Faster than C
نویسنده
چکیده
Contrary to popular belief, Lisp code can be very efcient today: it can run as fast as equivalent C code or even faster in some cases. In this paper, we explain how to tune Lisp code for performance by introducing the proper type declarations, using the appropriate data structures and compiler information. We also explain how e ciency is achieved by the compilers. These techniques are applied to simple image processing algorithms in order to demonstrate the announced performance on pixel access and arithmetic operations in both languages.
منابع مشابه
The Gabriel 'Triangle' Benchmark at Warp Speed
We show how to speed up the Gabriel 'Triangle' Benchmark by more than two orders of magnitude (206 X faster than the Cray-1) on a Common Lisp system running on the 80860-based OKIstation, by using better programming techniques. The resulting program fits nicely within next generation on-chip caches and kills almost all potential parallelism, thus becoming worthless as a general-purpose Lisp ben...
متن کاملDRAFT 11: What’s it worth to write a short program for polynomial multiplication?
One of the major advantages of writing computer programs in a higher-level language is that the programs tend to be shorter, easier to write, read, modify, and debug. Numerous programs for multiplication of univariate polynomials over the integers are available in open-source packages. What is the smallest expression in a programming language for such a program? (Assuming that the language does...
متن کاملSoftware Fault Prevention by Language Choice: Why C is Not My Favorite Language
How much does the choice of a programming language influence the prevalence of bugs in the resulting code? It seems obvious that at the level at which individuals write new programs, a change of language can eliminate whole classes of errors, or make them possible. With few exceptions, recent literature on the engineering of large software systems seems to neglect language choice as a factor in...
متن کاملCLOS Efficiency: Instantiation
This article reports the results of an ongoing experimental research on the behavior and performance of CLOS, the COMMON-LISP Object System. Our purpose is to evaluate the behavior and performance of the 3 most important characteristics of any dynamic object-oriented system: class instantiation, slot access and dynamic dispatch. This paper describes the results of our experiments on instantiati...
متن کاملGOALIE, A Common Lisp Application to Discover Kripke Models: Redescribing Biological Processes from Time-Course Data
GOALIE is a Common Lisp application that redescribes numerical gene expression value measurements into formal temporal logic models of biological processes. It finds extensive uses in the analysis of microarray and other high-throughput biological datasets. GOALIE incorporates several statistical, logical, and ontological modules, connected together through an architecture that exploits various...
متن کامل